home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Inside!
/
Amiga FD Inside (1995)(Ultramax).iso
/
forumamiga
/
ausgabe09
/
texte
/
scrolling
< prev
next >
Wrap
Text File
|
1992-09-06
|
2KB
|
49 lines
Wie programmiert man butterweiches Scrolling ?
- oder Ist der Blitter schnell genug ? -
Ich möchte eine Scrolling-Routine für ein Video-betiteltingsprogramm schreiben.
Es soll der gesammte Bildschirm gescrollt werden ( am besten HiRes+Interlace
mit mindest. 4 Farben )
Dafür gibt es ja 2 Möglichkeiten:
1. Viewport-Scrolling:
Also bräuchte ich eine Bitmap, die doppelt so groß wie der Bildschirm ist,
und eine Interruptroutine die mittels ScrolVPort() den sichtbaren Bereich
jeweils eine Zeile tiefer beginnen läßt, und, sobald die letzte Bitmap-
zeile am unteren Ende des Bildschirms erscheint, wieder die oberste Zeile
der Bitmap anzeigt usw.
Diese Methode ist zwar schnell genug (also bei jedem VBI eine Zeile nach
oben gescrollt) , aber leider sehr unflexibel:
so kann man z.B. nicht die obere Bildschirmhälfte von oben und die untere
von unten hereinscrollen, sondern wirklich nur den gesammten Bildschirm-
INHALT vertikal verschieben.
2. Blitterscrollling:
Man benutzt 3 gleichgroße Bitmaps:
2 fürs double buffering und eine die den Titel letztendlich enthält.
Eine Interruptroutine ändert die Copperliste bei jedem VBI so ab, daß
die beiden Bitmaps abwechselnd angezeigt werden.
In die Bitmap, die nicht angezeigt wird, kann dann inzwischen ein Teil
des Titels hineinkopiert werden. Somit kann man z.B. den oberen Teil
des Titels von links nach rechts hereinscrollen und den unteren von
rechts nach links.
Soviel zur Theorie. Allerdings stürzt der Amiga ab, sobald mehr als
ein einfarbiger LoRes-Bildschirm zu verschieben ist.
Das einzige, was ich mir vorstellen kann ist, daß BltBitmap() zu langsam
ist. Leider weiß ich weder wie ich den Blitter auf Hardwareebene an-
sprechen kann noch ob der Geschwindigkeitsvorteil sich überhaupt lohnt.
Wer hat damit schon Erfahrung ? Bitte schreibt mir ! ( Assembler oder C !)
Es muß doch möglich sein, einen ganzen Bildschirm 50x pro Sekunde zu ko-
pieren ! VideoBroadcast bringt ja auch auf einem normalen Amiga ein
butterweiches Echtzeitscrolling.
Ich würde mich echt freuen, wenn mir jemand weiterhelfen könnte.
Andreas Ackermann
Lorenz-Summa-Str. 10 -Acki.
W-8679 Oberkotzau